// @before-stub-for-debug-begin
#include <vector>
#include <string>
#include "commoncppproblem66.h"

using namespace std;
// @before-stub-for-debug-end

/*
 * @lc app=leetcode.cn id=66 lang=cpp
 *
 * [66] 加一
 */

// @lc code=start
class Solution {
public:
/* 超时
    vector<int> plusOne(vector<int>& digits) {
        int size = digits.size();
        int Num = 0;
        for(int i = 0 ;i < size ;i++ )
        {
            Num = Num * 10 + digits[i];
        }

        Num += 1;
        
        vector<int> res;
        while(Num >= 1 )
        {
            res.insert(res.begin(),Num % 10);
            Num = Num / 10;
        }
        return res;
    }
    */
    vector<int> plusOne(vector<int>& digits) {
        int size = digits.size();
        vector<int> res;
        int flag = 1;               // 进位标志
        for(int i = size - 1 ; i >=0 ; i--)
        {
            if(flag == 1)
            {
                if(digits[i] == 9)
                {
                    digits[i] = 0;
                    flag = 1;
                }
                else if(digits[i] != 9)
                {
                    digits[i]++;
                    flag = 0;
                }
            }
            int  num = digits[i];
            res.insert(res.begin(),digits[i]);
        }
        if(flag == 1)
            res.insert(res.begin(),1);
        return res;

    }

};
// @lc code=end

